package com.corpgovernment.organization.enumm;


import java.util.EnumSet;
import java.util.HashMap;
import java.util.Map;

public enum CardCodeEnum {
    /**
     * 身份证
     */
    ID_CARD("1", "身份证"),

    /**
     * 护照
     */
    PASSPROT("2", "护照"),

    /**
     * 学生证
     */
    STUDENT_CARD("3", "学生证"),

    /**
     * 军人证
     */
    SOLDIER_CARD("4", "军人证"),

    /**
     * 回乡证
     */
    RETURN_HOME_CARD("7", "回乡证"),

    /**
     * 台胞证
     */
    TAIWAN_CARD("8", "台胞证"),

    /**
     * 港澳通行证
     */
    GANGAO_CARD("10", "港澳通行证"),

    /**
     * 港澳通行证
     */
    SAILOR_CARD("11", "国际海员证"),

    /**
     * 外国人永久居留证
     */
    FOREIGNER_CARD("20", "外国人永久居留证"),

    /**
     * 旅行证
     */
    TRAVEL_CARD("21", "旅行证"),

    /**
     * 台湾通行证
     */
    TAIWAN_PASS("22", "台湾通行证"),

    /**
     * 户口簿
     */
    BOOKLET("25","户口簿"),

    /**
     * 出生证明
     */
    BIRTH_CERTIFICATE("27","出生证明"),

    /**
     * 外国人永久居留身份证
     */
    FOREIGNER_LIVE_CARD("28", "外国人永久居留身份证"),

    /**
     * 港澳台居民居住证
     */
    GANGAO_LIVE_CARD("32", "港澳台居民居住证"),

    /**
     * 其他
     */
    ELSE("99", "其他");

    /**
     * 证件名字
     */
    private String desc;

    /**
     * 证件类型
     */
    private String code;

    private CardCodeEnum(String code) {
        this.code = code;
    }

    private CardCodeEnum(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    private static final Map<String, CardCodeEnum> lookup = new HashMap<>();

    static {
        for (CardCodeEnum s : EnumSet.allOf(CardCodeEnum.class)) {
            lookup.put(s.getCode(), s);
        }
    }

    public String getDesc() {
        return desc;
    }

    public String getCode() {
        return code;
    }

    public static CardCodeEnum get(String code) {
        return lookup.get(code);
    }
    public static boolean exists(String code) {
        return lookup.containsKey(code);
    }
}
